package com.bgs.travelapp.userManagement.controller;

import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import com.bgs.travelapp.result.CommonResult;
import com.bgs.travelapp.userManagement.entity.UserManagementEntity;
import com.bgs.travelapp.userManagement.service.UserManagementService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartRequest;

import javax.annotation.Resource;

/**
 * gpd 2022-07-10 20:13:00
 * 后端展示--用户管理
 */
@CrossOrigin
@RestController
@RequestMapping("/userManagement")
public class UserManagementController {

    @Resource
    UserManagementService userManagementService;

    /**
     * 用户新增 （后端---用户管理）
     * gpd 2022-07-10 20:13:00
     *
     * @Parma multipartRequest, userManagement
     */
    @PostMapping("/saveUser")
    public CommonResult saveUser(MultipartRequest multipartRequest, UserManagementEntity userManagementEntity) {
        return CommonResult.ok(userManagementService.saveUser(multipartRequest, userManagementEntity));
    }

    /**
     * 分页全查+模糊查（用户名称、登录名称、性别、角色名称、年龄） （后端---用户管理）
     * gpd 2022-07-10 20:23:00
     *
     * @param pageRequest
     * @param userName
     * @param loginName
     * @param sex
     * @param roleName
     * @param age
     * @return
     */
    @GetMapping("/userAllList")
    public PageResult userAllList(PageRequest pageRequest, String userName, String loginName, String sex, String roleName, String age) {
        return userManagementService.userAllList(pageRequest, userName, loginName, sex, roleName, age);
    }

    /**
     * （后端---用户管理）
     * 用户修改
     * gpd 2022-07-10 20:36:00
     *
     * @param userManagementEntity
     * @return
     */
    @PutMapping("/updateUser")
    public CommonResult updateUser(MultipartRequest multipartRequest, UserManagementEntity userManagementEntity) {
        return CommonResult.ok(userManagementService.updateUser(multipartRequest, userManagementEntity));
    }

    /**
     * （后端---用户管理）
     * 删除用户
     * gpd 2022-07-10 20:48:00
     *
     * @param id
     * @return
     */
    @DeleteMapping("/deleteUser")
    public CommonResult deleteUser(Integer id) {
        return CommonResult.ok(userManagementService.deleteUser(id));
    }

    /**
     * 根据账号密码登录
     * 后端--登录
     * todo 白
     * gpd 2022-08-22 10点30分
     *
     * @param loginName
     * @param password
     * @return
     */
    @GetMapping("/loginByUser")
    public CommonResult loginByUser(String loginName, String password) {
        return userManagementService.loginByUser(loginName, password);
    }

    /**
     * 获取用户权限
     * 后端---动态菜单
     * gpd 2022-08-22 11点17分
     *
     * @param loginName
     * @return
     */
    @GetMapping("/getUserRights")
    public CommonResult getUserRights(String loginName) {
        return userManagementService.getUserRights(loginName);
    }

    /**
     * 新增修改校验登录账号
     * 后端---后端用户账号管理
     * gpd 2022-08-24 15点24分
     * @param loginName
     * @return
     */
    @GetMapping("/checkLoginName")
    public CommonResult checkLoginName(String loginName){
        return CommonResult.ok(userManagementService.checkLoginName(loginName));
    }
}
